/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package reamodel.util;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

import reamodel.*;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see reamodel.ReamodelPackage
 * @generated
 */
public class ReamodelAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static ReamodelPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ReamodelAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = ReamodelPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReamodelSwitch<Adapter> modelSwitch =
		new ReamodelSwitch<Adapter>() {
			@Override
			public Adapter caseREAModel(REAModel object) {
				return createREAModelAdapter();
			}
			@Override
			public Adapter caseEconomicResourceType(EconomicResourceType object) {
				return createEconomicResourceTypeAdapter();
			}
			@Override
			public Adapter caseEconomicAgentType(EconomicAgentType object) {
				return createEconomicAgentTypeAdapter();
			}
			@Override
			public Adapter caseEconomicEventType(EconomicEventType object) {
				return createEconomicEventTypeAdapter();
			}
			@Override
			public Adapter caseIncrementEconomicEventType(IncrementEconomicEventType object) {
				return createIncrementEconomicEventTypeAdapter();
			}
			@Override
			public Adapter caseDecrementEconomicEventType(DecrementEconomicEventType object) {
				return createDecrementEconomicEventTypeAdapter();
			}
			@Override
			public Adapter caseEconomicResource(EconomicResource object) {
				return createEconomicResourceAdapter();
			}
			@Override
			public Adapter caseEconomicAgent(EconomicAgent object) {
				return createEconomicAgentAdapter();
			}
			@Override
			public Adapter caseEconomicEvent(EconomicEvent object) {
				return createEconomicEventAdapter();
			}
			@Override
			public Adapter caseIncrementEconomicEvent(IncrementEconomicEvent object) {
				return createIncrementEconomicEventAdapter();
			}
			@Override
			public Adapter caseDecrementEconomicEvent(DecrementEconomicEvent object) {
				return createDecrementEconomicEventAdapter();
			}
			@Override
			public Adapter caseCommitment(Commitment object) {
				return createCommitmentAdapter();
			}
			@Override
			public Adapter caseIncrementCommitment(IncrementCommitment object) {
				return createIncrementCommitmentAdapter();
			}
			@Override
			public Adapter caseDecrementCommitment(DecrementCommitment object) {
				return createDecrementCommitmentAdapter();
			}
			@Override
			public Adapter caseParticipation(Participation object) {
				return createParticipationAdapter();
			}
			@Override
			public Adapter caseReceiveParticipation(ReceiveParticipation object) {
				return createReceiveParticipationAdapter();
			}
			@Override
			public Adapter caseProvideParticipation(ProvideParticipation object) {
				return createProvideParticipationAdapter();
			}
			@Override
			public Adapter caseStockflow(Stockflow object) {
				return createStockflowAdapter();
			}
			@Override
			public Adapter caseInflow(Inflow object) {
				return createInflowAdapter();
			}
			@Override
			public Adapter caseOutflow(Outflow object) {
				return createOutflowAdapter();
			}
			@Override
			public Adapter caseStockflowType(StockflowType object) {
				return createStockflowTypeAdapter();
			}
			@Override
			public Adapter caseInflowType(InflowType object) {
				return createInflowTypeAdapter();
			}
			@Override
			public Adapter caseOutflowType(OutflowType object) {
				return createOutflowTypeAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link reamodel.REAModel <em>REA Model</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.REAModel
	 * @generated
	 */
	public Adapter createREAModelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicResourceType <em>Economic Resource Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicResourceType
	 * @generated
	 */
	public Adapter createEconomicResourceTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicAgentType <em>Economic Agent Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicAgentType
	 * @generated
	 */
	public Adapter createEconomicAgentTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicEventType <em>Economic Event Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicEventType
	 * @generated
	 */
	public Adapter createEconomicEventTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.IncrementEconomicEventType <em>Increment Economic Event Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.IncrementEconomicEventType
	 * @generated
	 */
	public Adapter createIncrementEconomicEventTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.DecrementEconomicEventType <em>Decrement Economic Event Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.DecrementEconomicEventType
	 * @generated
	 */
	public Adapter createDecrementEconomicEventTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicResource <em>Economic Resource</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicResource
	 * @generated
	 */
	public Adapter createEconomicResourceAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicAgent <em>Economic Agent</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicAgent
	 * @generated
	 */
	public Adapter createEconomicAgentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.EconomicEvent <em>Economic Event</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.EconomicEvent
	 * @generated
	 */
	public Adapter createEconomicEventAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.IncrementEconomicEvent <em>Increment Economic Event</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.IncrementEconomicEvent
	 * @generated
	 */
	public Adapter createIncrementEconomicEventAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.DecrementEconomicEvent <em>Decrement Economic Event</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.DecrementEconomicEvent
	 * @generated
	 */
	public Adapter createDecrementEconomicEventAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.Commitment <em>Commitment</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.Commitment
	 * @generated
	 */
	public Adapter createCommitmentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.IncrementCommitment <em>Increment Commitment</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.IncrementCommitment
	 * @generated
	 */
	public Adapter createIncrementCommitmentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.DecrementCommitment <em>Decrement Commitment</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.DecrementCommitment
	 * @generated
	 */
	public Adapter createDecrementCommitmentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.Participation <em>Participation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.Participation
	 * @generated
	 */
	public Adapter createParticipationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.ReceiveParticipation <em>Receive Participation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.ReceiveParticipation
	 * @generated
	 */
	public Adapter createReceiveParticipationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.ProvideParticipation <em>Provide Participation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.ProvideParticipation
	 * @generated
	 */
	public Adapter createProvideParticipationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.Stockflow <em>Stockflow</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.Stockflow
	 * @generated
	 */
	public Adapter createStockflowAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.Inflow <em>Inflow</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.Inflow
	 * @generated
	 */
	public Adapter createInflowAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.Outflow <em>Outflow</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.Outflow
	 * @generated
	 */
	public Adapter createOutflowAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.StockflowType <em>Stockflow Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.StockflowType
	 * @generated
	 */
	public Adapter createStockflowTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.InflowType <em>Inflow Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.InflowType
	 * @generated
	 */
	public Adapter createInflowTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link reamodel.OutflowType <em>Outflow Type</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see reamodel.OutflowType
	 * @generated
	 */
	public Adapter createOutflowTypeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //ReamodelAdapterFactory
